Digital cameras are becoming affordable for an increasing number of customers and most of them wish to view their photos on a computer screen or print them in reasonable quality with a commercially available printer. Customers, however, are sometimes not pleased with the result they get since the color reproduction on a screen or on a printout falls short of their personal expectations about how colors should be reproduced. Even if the colors are faithfully reproduced, which can be measured by a spectrophotometer, psychophysical tests have shown that users favor color reproduction according to their personal preferences. The problem of dissatisfying color reproduction is not restricted to the field of digital photography but most complaints are indeed registered at imaging companies in this realm since users are unwilling to accept photographs of inferior quality.
The fundamental basis for all color reproduction is the three-channel design of the human retina which means that the human eye has three types of color sensors (corresponding roughly to red, green and blue). Receptors of the human eye, also referred to as photoreceptors, are firstly divided into two types, called rods and cones because of their shapes. Rods provide vision in low-light conditions, such as night vision, whereas cones function in bright light conditions. While all the rods in the retina are essentially the same, the cones are further divided into three types of the above-mentioned color sensors. One responds primarily to the long wavelengths (red cones) of light and has little response to the middle or short wavelengths. One responds primarily to the middle wavelengths (green cones), and the third responds to the short wavelengths (blue cones). This trichromatic structure of the human retina is also referred to as “trichromacy”. The importance of trichromacy in terms of color management is that one can simulate almost any color by using just three well-chosen primary colors of light (see, for example: “Real World Color Management”; p. 16-20; Fraser, B.; Murphy, C.; Bunting, F.; Peachpit Press; 2003).
It is the trichromatic structure of the human retina that makes possible what is known as additive primary colors. If one chooses three light sources with overlapping spectra that divide up the visible spectrum roughly into thirds, each one adds wavelengths that tickle one or more of the eye's three receptors. If the spectrum is divided into thirds, one gets three light sources that are called red, green and blue. Starting from black (no wavelengths), the three colors add wavelengths—hence “additive color”—until one gets white (all wavelengths in even proportions).
Trichromacy is also the source of subtractive primary colors—cyan, magenta and yellow. Rather than adding wavelengths to black, they act to subtract wavelengths from an otherwise white source of light. In other words, the term “cyan ink” is just a name for “long-wavelength-subtractor”, or simply “red-subtractor”—it subtracts long (red) wavelengths from white light (such as that reflected from otherwise blank paper). Similarly, magenta ink is a “medium-wavelength-subtractor”, or a “green-subtractor”. And yellow is a “short-wavelength-subtractor” or a “blue-subtractor”.
The notion of additive and subtractive primary colors leads to two color spaces. A color space allows any color to be defined in terms of the amount of each primary color it contains. A color may hence be represented as coordinates in a three- (or any other multi-) dimensional space, whereby each primary color forms one of the axes. The axes (the primary colors) are also referred to as channels.
The additive primary colors span up a color space which is called red-green-blue color space, usually abbreviated as RGB color space or RGB color system. Colors of the RGB color space are generated by additively mixing these three primary colors. Additive color mixing means superimposing the three primary colors by projection. If the three primary colors are superimposed in equal portions, they add up to the mixed color white. Not only does the RGB color system occur in nature, like in the retina of the human eye, but it is also found in technology. Color projectors generate images by superimposing red, green and blue beams of light. Displaying color on a monitor is done by spraying streams of electrons that strike phosphors. Phosphors are chemical and mineral compounds that emit light when they are struck (the technical term is “excited”) by a beam of electrons. Color monitors use three different kinds of phosphors painted on the inside of the faceplate of a color monitor that emit red, green and blue light, respectively. By varying the strength of the electron beam, phosphors are excited to emit more or less red, green, and blue light, and hence produce different colors. One should note, that the precise color that a monitor produces depends on the type of phosphors used, its age, the specific circuitry and other characteristics of the monitor. Therefore, it is highly unlikely that any two monitors will produce the same color from the same signal, even if they are two apparently identical monitors. Typically, one channel of the RGB system is encoded by 8 bits, which leads to 256 tone levels per channel. Hence, three channels are encoded by 24 bits and may represent 256×256×256=16.8 million colors. Besides color monitors, also scanners and digital cameras work with the RGB color system.
Subtractive primary colors cyan, magenta and yellow span up a CMY color space. The colors of the CMY color space are produced by subtractively mixing these three primary colors. Subtractive color mixing means that pigments of the three primary colors are mixed. Cyan, magenta and yellow are the complementary colors of red, green and blue. The pigments absorb the red, green and blue portions of the light and appear therefore in the corresponding complementary colors. If the three primary colors are mixed in equal portions, all color portions are absorbed and the mixture appears black. Subtractive color mixing is typically applied with inkjet color printers. By using toner colors cyan, magenta and yellow, all colors of the CMY color space may be reproduced.
Practical experiences show, however, that the color black does not get the necessary intensity by mixing the three subtractive primary colors. For this reason, color printers usually feature an additional container with black ink. This printing system is referred to as four color printing in the CMYK system. This system has two disadvantages: pixel graphics need more memory space in this color system (32 bits per pixel instead of 24 bits) and further, the color system is not unambiguous. The color black is redundant and may be represented by the other three color components. This leads to undesired results when printing shades of gray.
Strictly speaking, the CMYK values used in a printing device and the RGB values used in color monitors do not refer to colors, but rather specify the amounts of the different colorants (ink, toners, phosphors etc.) which are used to print in a pixel or a dot. This means two things:                (a) The same set of RGB or CMYK numbers will produce different colors on different devices (or on the same device with different paper, if it is a printer or a press).        (b) To produce the same color on different devices, the RGB or CMYK numbers sent to each device have to be modified.        
Therefore, one should note that neither RGB nor CMYK numbers are descriptions of colors. Rather, they are control signals, or instructions that make devices like monitors and printers produce something that is experienced as color.
Device-independent color models have been defined to enable colors to be characterized in a device-independent way. The CIE (Commission International de L'Eclairage, or the International Commission on Illumination) has defined spectral response curves (CIE color matching functions) which correspond to the photoreceptor sensitivities of a standard observer (see, for example, C. Poynton, “A Technical Introduction To Digital Video”, John Wiley & Sons, Inc., 1996, p. 123, FIG. 7.4). These values of the standard observer's color matching functions are called CIE XYZ; the corresponding color space is therefore called CIE XYZ color space. As the CIE XYZ representation refers to colors perceived by the standard observer, it is device-independent, in contrast to an RGB or CMYK representation which specifies amounts of different colorants in a particular printing or displaying device, which is therefore device-dependent.
As mentioned above, the numbers in a device-dependent representation (e.g. a CMYK representation) do not really represent color. Instead, they represent the amounts of colorants (e.g. the amounts of the different inks in a printing device) required to make a color. The same set of CMYK numbers will produce different colors on different devices (and media). In order to produce the same color on different devices (or different media), the color may be expressed in a device-independent color space (such as CIE XYZ), and then converted into the device-dependent (and media-dependent) color representation that specifies what amounts of colorants are to be applied in order to reproduce the desired color on the particular reproduction device and media. The mappings which correlate device-independent color values with device-dependent color values are called transforms and their data representations are called profiles. A transform that converts color values in a device-independent representation into a device-dependent representation is known as the “forward transform”, and a transform that converts color values from the device-dependent representation into a device-independent representation is known as the “backwards transform”. As a device-independent representation is also used as a “profile connection space”, or PCS, the forward and backwards transforms are also called the PCS-to-device transform and the device-to-PCS transform (see Fraser, pp. 99-110). In principle, a profile may be in the form of a matrix, and a transform may be performed by a matrix multiplication (e.g. by multiplying the PCS components of a color to be reproduced (e.g. its CIE XYZ components) with the forward matrix). However, for more complex devices, such as printers, the profiles are typically in the form of lookup tables (LUTs). A LUT is a table of numbers that provides, for certain input values (colors represented in an input color space), the corresponding output values (the corresponding colors represented in an output color space). The tables that specify the backwards transform are known as the AtoB tables, while the tables that specify the forward transform are known as BtoA tables (see Fraser, p. 102).
A profile reflects characteristics of a device and therefore has to be made for each device individually. Typically, the process of making a color profile for a color monitor includes the following steps:                (i) A stimulus, which is also referred to as a profiling target, is sent in the form of predefined RGB values to the monitor. A profiling target is a set of RGB values, for example all combinations of 0%, 10%, 20%, 40%, 70% and 100% of each colorant in all possible combinations.        (ii) The monitor displays the predefined RGB values and the output, which is also called response in contrast to the stimulus, is measured by an instrument, such as a spectrophotometer, that captures the device-independent CIE XYZ values.        (iii) A profile is constructed that maps RGB values onto their CIE XYZ values. The profile can tell what actual color will result from a given set of RGB values.        (iv) The LUT of the profile is reversed and can also tell, what RGB values are needed to display a specific color.        
Similarly, a profile is generated for a printer by sending predefined CMYK values (profiling target) to a printer and printing them. A profiling target contains patches with 0%, 10%, 20%, 40%, 70% and 100% of each ink in all possible combinations. Then, the CIE XYZ values of the printed output are measured and a profile is built which maps the predefined CMYK values onto the measured CIE XYZ values. The profile is reversed to indicate which amounts of CMYK colorants are needed to obtain a specific color.
Making a profile for a scanner differs only in that the measurements are usually already done. The stimulus in this case is a scanning target that is typically supplied together with the scanner by the manufacturer. Scanning targets are always accompanied by a data file that records the CIE XYZ values of the color patches. These values have been measured by the manufacturer by means of a spectrophotometer. The target is scanned and the scanner generates its own RGB values out of the scanning target. A profile is constructed that maps the scanner's RGB values onto the CIE XYZ values. The profile can tell what actual color will result from a given set of RGB values. The LUT of the profile is reversed and can also tell, what RGB values are needed to display a specific color.
One should keep in mind that profiles are limited in their capability to define a transformation from one color space into another. When making a profile, it is practically impossible to send all possible signal combinations to the output device, measure the output and define a precise mapping for all input values (i.e. all signal combinations) into an output color space. Even if the signals of each channel of a CMYK printer were incremented by 1%, this would lead to 10.0000.000 combinations resulting in the same amount of color patches. Measuring the patches and storing that many sample points in a LUT would require gigabytes of storage space. Therefore, interpolation is unavoidable when creating a profile and when using it. Interpolation is performed by a color management module (CMM) and there are different ways of interpolating. If an input value is not stored in the input data points of a LUT, the input data points closest to the input value and the distances from the input value to the input data points are determined. Then the corresponding output data points are looked up, and an interpolation is made between them, taking the reciprocals of the distances of the input value to the input data points as weighting factors of the corresponding output data points.
Another limitation arises from the fact that different imaging devices have different color gamuts. The color gamut of a device represents the range of colors that a device can reproduce. If an input device can capture colors that an output device cannot reproduce, then there is no way of attaining faithful color reproduction by means of applying profiles. If a printer, for example, cannot reproduce a certain shade of red, which a scanner can capture, then the printer cannot be made reproducing said shade of red by applying one or more profiles to it.
The third limitation is that a profile is only as accurate as the measurements on which it is based. A profile is a snapshot of the way the device was behaving when the measurements were captured. The majority of imaging devices change their behavior over time, so that steps have to be taken to ensure that the device does not change its behavior.
Typically, profiles are generated during the manufacturing process of an imaging device and are stored in form of an LUT inside the firmware of the imaging device since a profile inherently belongs to one device.
Color profiles are not only device-dependent, but also media-dependent. In the case of an inkjet printer, this means that different profiles are generated for different types of paper or transparencies.
From a mathematic perspective, each imaging device may represent an amount of colors which are represented in a color space. A color space is spanned by a set of linear independent color vectors (which are referred to as channels above) which is called base. Strictly speaking, the bases of these image spaces are different for each pair of imaging devices so that profiles are needed to define a transformation which says how one and the same color is represented with regard to two different bases. One should note that representing one and the same color with regard to different bases is the aim of color management in the realm of faithful color reproduction.
U.S. Pat. No. 5,311,212 discloses a color selection system for automatically generating a palette of coordinated, harmonious, and aesthetically pleasing colors based on a chosen key color. The colors of the palette are derived by symmetrically manipulating the chosen key color in a uniform color space. The system is based on known color theories for selecting harmonious colors. The selection of colors is restricted to functional colors which, in contrast to reference colors, only have symbolical function and therefore may be variable. Reference colors are colors of naturally occurring objects in the human perceptual world, such as colors of skin, grass and the sky, and require a close match to colors perceived in nature.
U.S. Pat. No. 5,254,978 discloses a reference color selection system for generating a palette of calorimetrically measured colors. A database stores calorimetrically measured colors which occur in nature. A mixing function allows the creation of new colors by applying a linear interpolation on two colors representing the ends of emerging new intermediate colors. The system, however, stores colors and creates new colors but does not apply the colors to an image.
U.S. Pat. No. 6,618,170 discloses a color printer control system comprising a user interface for shifting color hue. A color spectrum is displayed and the user can move a slide bar relative to the color spectrum. Thereby, a shift in color hue is defined which is also displayed in an image representation, such as a photograph, which changes according to the adjusted color hue. The system only allows the color hue for each image to be adjusted individually but does make generalizations concerning the user's color preferences based on several color adjustments made by the user in regard to several images.
U.S. Pat. No. 6,166,719 discloses a system, in which a represented image is adjusted in response to a user selecting an adjustment. If several adjustments are applied in sequence, they are always applied to a copy of the original image and not to an image, to which adjustments have been applied. Therefore, no information is lost, which could occur if a user first brightened the image so that the image actually disappeared and then wanted to darken the image again. The adjustments are initially displayed in a further image and are only applied to the original image if the user approves of the adjustments.